
/**
 * 手机号码格式11位数字，1开头
 */
export const phoneFormat = /^1\d{10}$/;
/**
 * 手机号格式是否正确
 * @param v 手机号码 11位数字，1开头
 */
export const phoneTest = (v: unknown): v is string => {
    if (typeof v !== 'string') {
        return false;
    }
    return phoneFormat.test(v);
}

/**
 * 短信验证码格式4-8位数字
 */
export const smscodeFormat = /^\d{4,8}$/;
/**
 * 短信验证码格式校验
 * @param v 短信验证码 4-8位数字
 */
export const smscodeTest = (v: unknown): v is string => {
    if (typeof v !== 'string') {
        return false;
    }
    return smscodeFormat.test(v);
}

/**
 * 空白字符串格式
 */
export const blankFormat = /^[\s|\u3000]*$/;
/**
 * 字符串不是空白
 * @param v 字符串 undefined,null,'', 空格 都返回false
 */
export const notBlank = (v: unknown): v is string => {
    if (typeof v !== 'string') {
        return false;
    }
    return !blankFormat.test(v);
}

export type Blank = undefined | null;
/**
 * 字符串是空白
 * @param v 字符串 undefined,null,'', 空格 都返回true
 */
export const isBlank = (v: unknown): v is Blank => {
    if (typeof v !== 'string') {
        return true;
    }
    return blankFormat.test(v);
}